
/**
 * 菜单视图js
 */
Ext.namespace("oa.account.table");
Ext.namespace("oa.account.tree");


oa.account.table.checkboxGroup={};

function createForm(){
/**
 * 新增表单
 */
oa.account.table.addForm = Ext.create('Ext.form.Panel', {
	width : 480,
	url : '../../account/addAccount.do',
	frame : true,
	layout : 'anchor',
	defaults : {
		anchor : '100%'
	},
	defaultType : 'textfield',
	items : [{
				fieldLabel : '用户名',
				name : 'username',
				allowBlank : false
			}, {
				fieldLabel : '密码',
				name : 'password',
				allowBlank : false

			},oa.account.table.checkboxGroup,
			{
				fieldLabel : '用户概述',
				xtype : 'htmleditor',
				name : 'remarkUbb',
				width : 360,
				height : 150

			}],
	buttons : [{
		text : '提交',
		formBind : true, // only enabled once the form is valid
		disabled : true,
		handler : function() {
			var form = this.up('form').getForm();
			var o=oa.account.table.checkboxGroup.getValue();
			var roles=o.role;
			if(roles==null){
				Ext.Msg.alert("提示","请选择角色");
				return ;
			}
			var p={roleIdx:roles}
			if (oa.account.table.addFlag == 2) {
				var selectdata = oa.account.table.view.getSelectionModel()
						.getSelection();
				p.id = selectdata[0].get("id");
			}
			form.submit({
						waitMsg : '正在提交...',
						params : p,
						success : function(form, action) {
							oa.account.table.refresh();
							if (oa.account.table.addFlag == 2) {
								Ext.Msg.alert('提示', "修改成功",function(){
									oa.account.table.addView.hide();
								});
								
								return;
							}
							Ext.MessageBox.confirm('提示', '保存成功，是否继续添加？',
									function(obj) {
										if (obj == "yes") {
											form.reset();
										} else {
											oa.account.table.addView.hide();
										}
									});
						},
						failure : function(form, action) {
							Ext.Msg.alert('提示', action.result.msg);
						}
					});
		}
	}, {
		text : '重置',
		handler : function() {
			this.up('form').getForm().reset();
		}
	}]
})

/**
 * 新增视图
 */
oa.account.table.addView = Ext.create('widget.window', {
			title : '帐号管理',
			closable : true,
			closeAction : 'hide',
			width : 500,
			minWidth : 150,
			modal : true,
			plain : true,// 对窗口进行美化,可以看到整体的边框
			bodyStyle : 'padding: 5px;',
			items : [oa.account.table.addForm]
		})
		
}

/**
 * 新增按钮事件
 */
oa.account.table.add = function() {
	oa.account.table.addFlag = 1;
	oa.account.table.addForm.getForm().reset();
	oa.account.table.addView.show();
}

/**
 * 编辑按钮事件
 */
oa.account.table.edit = function() {
	oa.account.table.addFlag = 2;
	var data = oa.account.table.view.getSelectionModel().getSelection();
	if (data.length == 0 || data.length > 1) {
		Ext.Msg.alert("提示", "请选择一行数据");
		return;
	}
	var id = data[0].get("id");
	
			
	Ext.Ajax.request({   
                url:'../../account/loadRoleByAccountId.do?id='+id ,//这里改成动态页，负责生成和data.txt一样的json字符串内容
                success: function(resp,opts) { 
                	var items = Ext.JSON.decode(resp.responseText);
                    oa.account.table.checkboxGroup=Ext.create('Ext.form.CheckboxGroup',{
                    		fieldLabel: '选择角色',
                    		vertical: true,
                    		columns: 3,items:items
                    	});
                    createForm();
                    oa.account.table.addView.show();
					oa.account.table.addForm.getForm().load({
								waitMsg : '正在加载数据',
								waitTitle : '提 示',
								url : '../../account/loadAccount.do?id=' + id,
								method : 'GET',
								success : function(form, action) {
									// Ext.Msg.alert('提 示', '加载成功');
								}
							})
                    	
                }
	})
}

/**
 * 删除按钮事件
 */
oa.account.table.del = function() {
	var data = oa.account.table.view.getSelectionModel().getSelection();
	// alert(data);
	if (data.length == 0) {
		Ext.Msg.alert("提示", "请选择要操作的行");
		return;
	} else {
		Ext.Msg.confirm("请确认", "是否真的要删除数据？", function(button, text) {
					if (button == "yes") {
						var ids = [];
						Ext.Array.each(data, function(record) {
									var id = record.get('id');
									ids.push(id);

								});
						Ext.Ajax.request({
									url : '../../account/deleteAccount.do',
									params : {
										idx : ids.join(',')
									},
									waitMsg : '正在删除...',
									method : 'POST',
									// timeout : 2000,//默认30秒
									success : function(response, opts) {
										Ext.Msg.alert("提示", "删除成功");
										oa.account.table.refresh();
									}
								})
					}
				})
	}
}

Ext.define('oa.account.table.model', {
			extend : 'Ext.data.Model',
			fields : [{
						name : 'id'
					}, {
						name : 'username'
					}, {
						name : 'remark'
					}]
		})
// 创建数据源
oa.account.table.store = Ext.create('Ext.data.Store', {
			model : 'oa.account.table.model',
			// 设置分页大小
			pageSize : 20,
			proxy : {
				type : 'ajax',
				url : '../../account/loadTable.do',
				reader : {
					// 数据格式为json
					type : 'json',
					root : 'list',
					// 获取数据总数
					totalProperty : 'totalCount'
				}
			},
			autoLoad : true
		});

// 创建grid
oa.account.table.selectModel = Ext.create('Ext.selection.CheckboxModel');
oa.account.table.view = Ext.create('Ext.grid.Panel', {
			store : oa.account.table.store,
			selModel : oa.account.table.selectModel,
			renderTo : "account_index",
			columns : [{
						text : 'ID',
						width : 120,
						dataIndex : 'id',
						sortable : true
					}, {
						text : '用户名',
						width : 220,
						dataIndex : 'username',
						sortable : true
					}, {
						text : '用户概述',
						flex : 1.5,
						dataIndex : 'remark',
						sortable : true
					}],
			region : "center",
			split : true,
			width : "100%",
			height : "100%",
			columnLines : true,
			// 分页功能
			bbar : Ext.create('Ext.PagingToolbar', {
						store : oa.account.table.store,
						displayInfo : true,
						displayMsg : '显示 {0} - {1} 条，共计 {2} 条',
						emptyMsg : "没有数据"
					}),
			tbar : [{
						text : "新增",
						iconCls : 'Add',
						listeners : {
							"click" : oa.account.table.add
						}
					}, {
						text : "修改",
						iconCls : 'Applicationedit',
						listeners : {
							"click" : oa.account.table.edit
						}
					}, {
						text : "删除",
						iconCls : 'Delete',
						listeners : {
							"click" : oa.account.table.del
						}
					}]
		})

oa.account.table.refresh = function() {
	oa.account.table.store.load({
				scope : this,
				callback : function(records, operation, success) {
					console.log(records);
				}
			});
}

Ext.onReady(function(){
   Ext.Ajax.request({   
                url:'../../account/loadRoleAll.do' ,//这里改成动态页，负责生成和data.txt一样的json字符串内容
                success: function(resp,opts) { 
                	var items = Ext.JSON.decode(resp.responseText);
                    oa.account.table.checkboxGroup=Ext.create('Ext.form.CheckboxGroup',{
                    		fieldLabel: '选择角色',
                    		vertical: true,
                    		columns: 3,items:items
                    	});
                    createForm();
                } ,
                failure: function(resp,opts){alert('ERROR'+resp.status+'\n'+resp.responseText)}
   });  
});
